﻿using System;

namespace PKTools.Database
{
    public abstract class KeyAttribute : Attribute
    {
        public readonly string
            Key;

        public KeyAttribute(string key)
        {
            this.Key = key;
        }
    }

    [AttributeUsage(AttributeTargets.Class)]
    public class Table : KeyAttribute
    {
        public Table(string key)
            : base(key)
        {
        }
    }

    [AttributeUsage(AttributeTargets.Property)]
    public class Column : KeyAttribute
    {
        public Column(string key)
            : base(key)
        {
        }
    }

    [AttributeUsage(AttributeTargets.Property)]
    public class PK : Attribute
    {
    }

    [AttributeUsage(AttributeTargets.Property)]
    public class Identity : Attribute
    {
    }

    [AttributeUsage(AttributeTargets.Property)]
    public class Skip : Attribute
    {
    }
}
